﻿using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using Data.Entities;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;

namespace Service.Interface
{
    public interface ISysUserService : IUserLockoutStore<SysUser, Guid>,
        IUserPasswordStore<SysUser, Guid>,
        IUserTwoFactorStore<SysUser, Guid>,
        IUserEmailStore<SysUser, Guid>,
        IUserLoginStore<SysUser, Guid>
    {
        Task DeleteAsync(Guid id);
        Task DeleteAsync(IList<Guid> ids);
        Task<IList<SysUser>> FindAsync(Expression<Func<SysUser, bool>> func);
        Task<SysUser> FirstAsync(Expression<Func<SysUser, bool>> func);
        Task<SysUser> FindUserByCodeAsync(string code);
    }
}